#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
motifs_class_02 (motifs 09)
10 de enero de 2009
"""
#
import base64
import cStringIO
import wx
from motifs_common_01 import ICON
from motifs_baseclass_09 import MyBaseMotifs
#
#
class MyMotifs(MyBaseMotifs):
    def __init__(self, *args, **kwds):
        MyBaseMotifs.__init__(self, *args, **kwds)
        
        self.Bind(wx.EVT_BUTTON, self.doit, self.bt_run)
        self.Bind(wx.EVT_BUTTON, self.open, self.bt_xls)
        self.Bind(wx.EVT_CLOSE, self.OnClose)
        
        title = "%10s%45s%40s" %('LP CSIC/UAB', 'LAIAs_MOTIFS', 'vs 0.9')
        self.SetTitle(title)
        
        for item in [self.lb_31, self.tc_anchor]:
            item.SetToolTipString("Aminoacidos obligados en posicion 1")
        
        for item in [self.lb_32, self.sp_size]:
            item.SetToolTipString("Longuitud del motivo de union")
        
        for item in [self.lb_41, self.tc_pattern]:
            item.SetToolTipString("""Segundo site obligado.
Aminacidos obligados en posicion 'Pos'""")
        
        for item in [self.lb_42, self.sp_pos]:
            item.SetToolTipString("Posicion en la secuencia del segundo site obligado")
        
        self.chbx_nonest.SetToolTipString("Check para no tener en cuenta secuencias anidadas")
        self.chbx_twoanc.SetToolTipString("""Check para tener en cuenta un segundo anchor en
posicion 'Pos' definido por 'PATTERN AAs'""")
        
        self.bt_xls.SetToolTipString("Abre archivo de datos excel recien generado") 
        
        self.set_icon(ICON)
       
    def set_icon(self, ico):
        ""
        img = self.decode_string(ico)
        _icon = wx.IconFromBitmap(wx.BitmapFromImage(img))
        self.SetIcon(_icon)
    
    def decode_string(self, string):
        data = base64.decodestring(string)
        flhndl = cStringIO.StringIO(data)
        return wx.ImageFromStream(flhndl, wx.BITMAP_TYPE_ANY)
        
    def fbbCallback(self, evt):
        pass
    
    def doit(self, evt):
        pass
        
    def open(self, evt):
        pass
            
    def OnClose(self, evt):
        self.Destroy()


class MyApp(wx.App):
    def OnInit(self):
        wx.InitAllImageHandlers()
        motifs = MyMotifs(None, -1, "")
        self.SetTopWindow(motifs)
        motifs.Show()
        return 1


if __name__ == "__main__":
    app = MyApp(0)
    app.MainLoop()
